<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 递归就是函数自己调用自己  
        // 使用场景 进行累加累乘

       //  1 用递归实现输出0-5

        //  var i=0
        //  function fn() {
        //     // 如果大于等于 就retrun
        //     if(i>=5){
        //         return
        //     }
        //     i++
        //      console.log(i);
        //     fn()
        //  }
        //  fn()

        // 递归求1-100的和
        //    let i=0
        //    let sum=0  //存放总和
        //    function fn() {
        //     if(i>=100){
        //         return
        //     }
        //     i++;
        //     sum+=i;
        //     console.log(sum);
        //     fn()
        //    }
        //    fn()

        // 倒序走
    //     function  fn(params) {
    //         // 判断如果等等与1的话就终止  不然就是上次的与后面逐渐-1的数不断相加
    //         if(params==1){
    //             return 1
    //         }
    //         return params+fn(params-1)
    //     }
    //    console.log(fn(100)) ;


    // 用递归来求 5 的阶乘
    // function fn(params) {
    //    if(params==1){
    //     return 1;
    //    }
    //    return params * fn(params-1)
    // }
    //  console.log(fn(5)); 

    function fn(params) {
       if(params==1){
        return 1
       }   
       return params *fn(params-1)
    }
    fn(5)

       
    // list数据 为树状

    var stas = [

{ title: '根目录1', id: 1, parentId: 0, },

{ title: '根目录2', id: 2, parentId: 0 },

{ title: '子目录1-1', id: 3, parentId: 1 ,},

{ title: '子目录1-2', id: 4, parentId: 1 },

{ title: '孙目录', id: 6, parentId: 3 }

];



// 封装函数
   function fns(params,id) {
    // 遍历循环  先找到pid为0
    let newArr=[]
    stas.forEach((item,index)=>{
        if(item.parentId==id){
          let onece=fns(params,item.id)
        //  判断
        if(onece.length  >0){
            item.children= onece
         }
         newArr.push(item)

        }
    })

   }
   console.log(fns(stas,0));
//    fns()
    </script>
</body>
</html>
